A computer network is a collection of interconnected devices that can exchange data and share resources according to one or more communication protocols. The communication protocols define the format and manner in which the devices communicate the data. Example protocols include the Transmission Control Protocol (TCP) and the Internet Protocol (IP) that facilitate data communication by dividing the data into small blocks called packets. These packets are individually routed across the network from a source device to a destination device. The destination device extracts the data from the packets and assembles the data into its original form. Dividing the data into packets enables the source device to resend only those individual packets that may be lost during transmission. The protocols define the format and construction of the packet, including header and payload portions of the packets.
Groups of packets exchanged between a source device and a destination device may be referred to as a network traffic flow. Further multiple sessions may be established between the source device and the destination device. A router or other network device processes the packets associated with each network traffic flow or session as the packets move between the source and destination devices. In order to process the packets, the network device assigns particular resources of the network device as being responsible for the processing of the packets. For example, a router may assign a particular line card to process the packets received from a network traffic flow. As the number of network traffic flows and sessions being handled by the network device increases, the amount of resources of the network device required to process the network traffic flows and sessions also increases. Further, as the number of packets being exchanged between the source and destination devices within each network traffic flow and/or session increases, the amount of resources of the network device required to process the packets also increases.